There are a variety of computer platforms that host telephony applications. Such applications include voice mail messaging and multi-party calls, and many others. IP telephony (internet protocol telephony) applications introduce the telephone as a node on the IP network. In addition to point-to-point calling, telephones can serve as the origin or destination of a variety of network services. Further, telephones are no longer limited to voice communications or touch-tone menus. Modern IP phones sport rich interfaces with interactive touch-screen color displays.
There is, however, a limited selection of applications available for use on such phones. Such lack of applications stems partly from the expensive architectural upgrades Installing a new feature, such as voice mail, meant purchasing expensive new hardware for each circuit.
As a consequence, telephony applications appeared first at the edges of the network, in small offices or remote communities. Such proliferation helped catapult the rise of the PBX, or Private Branch eXchange, as the internal telephony interconnect within a building or organization.
A PBX originally served two purposes. First, it permitted a large number of end-users to share access to a small number of outbound lines. Second, it connected internal users without having to make a complete circuit to the telephone company and back. As the PBX became more powerful and commonplace, it began to include additional services such as call forwarding and voice mail. The increasing number of PBX vendors helped drive costs down but also resulted in each vendor utilizing proprietary systems for application development, making application development for widespread use prohibitively expensive.
Two principal issues plague application development for PBX systems. First there is the lack of standards in programming language, development environment, and signaling protocols. Communication with PBX hardware often involves closed, proprietary signaling protocols. Second, most PBX systems have extensibility and scalability problems.
In the 1980's and 1990's, the industry worked to resolve this issue with the development of a standard for telephony application development: TAPI, the Telephony Application Programming Interface. TAPI and its successor, JTAPI, (Java TAPI) are difficult to use since they required developers to have a deep understanding of the telephony switching to perform even the most basic functionality. Consequently, many developers and IT organizations avoided the standard and continued to invest in vendor-specific PBX systems.
The gradual adoption of Voice over Internet Protocol (VoIP) technologies in recent years helps reduce networking costs and potentially bridge voice and data networks. Modern VoIP PBX systems can communicate with IP telephones using the same data network shared by computers. However, such VoIP PBX systems continue to lack sufficient programmability, flexibility, and scalability. Further, modern VoIP protocols add to the number of protocols that application developers need to employ to be widely compatible.
What is needed, therefore, is a telephony application platform that enables communication over a variety of protocols with a scalable application server. What is also needed is an application development environment that enables easy development across multiple protocols for the same application platform.